#!/usr/bin/env python3
"""
身份证双面处理器 - 图形界面启动入口

启动身份证双面处理器的图形用户界面
提供直观易用的操作体验
"""

import sys
import os
import tkinter as tk
from tkinter import messagebox

# 添加父目录到路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from gui.main_window import MainWindow


def check_dependencies():
    """
    检查必要的依赖包
    
    返回:
        bool: 是否所有依赖都可用
    """
    missing_packages = []
    
    try:
        import cv2
    except ImportError:
        missing_packages.append("opencv-python")
    
    try:
        import numpy
    except ImportError:
        missing_packages.append("numpy")
    
    try:
        import PIL
    except ImportError:
        missing_packages.append("pillow")
    
    try:
        import rembg
    except ImportError:
        missing_packages.append("rembg")
    
    try:
        import skimage
    except ImportError:
        missing_packages.append("scikit-image")
    
    try:
        import onnxruntime
    except ImportError:
        missing_packages.append("onnxruntime")
    
    if missing_packages:
        error_msg = f"""缺少必要的依赖包:
{', '.join(missing_packages)}

请运行以下命令安装:
pip install {' '.join(missing_packages)}

或运行项目目录下的 install.bat 脚本"""
        
        messagebox.showerror("依赖错误", error_msg)
        return False
    
    return True


def main():
    """
    主函数 - 启动身份证双面处理器图形界面
    
    使用场景:
        python gui/app.py
        或直接双击运行
    """
    try:
        # 检查依赖
        if not check_dependencies():
            return 1
        
        # 创建并运行主窗口
        app = MainWindow()
        app.run()
        
        return 0
        
    except Exception as e:
        messagebox.showerror("启动错误", f"程序启动失败: {e}")
        return 1


if __name__ == "__main__":
    sys.exit(main()) 